package com.ruoyi.sl.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.ruoyi.sl.domain.SlRwork;
import com.ruoyi.sl.domain.SlRworkRmember;
import com.ruoyi.sl.domain.SlWsMonthPay;
import org.apache.ibatis.annotations.Param;

/**
 * 操作人Service接口
 * 
 * @author admin
 * @date 2024-06-07
 */
public interface ISlRworkRmemberService 
{
    /**
     * 查询操作人
     * 
     * @param rmemberId 操作人主键
     * @return 操作人
     */
    public SlRworkRmember selectSlRworkRmemberByRmemberId(Long rmemberId);

    /**
     * 根据报工单ID查询所有操作人
     *
     * @param rworkId 报工单ID
     * @return 操作人
     */
    public List<SlRworkRmember> selectSlRworkRmemberListByRworkId(Long rworkId);

    /**
     * 根据报工人和日期查询所有操作人
     *
     * @param rwork 报工人和日期
     * @return 操作人
     */
    public List<SlRworkRmember> selectSlRworkRmemberListByRwork(SlRwork rwork);

    /**
     * 查询操作人列表
     * 
     * @param slRworkRmember 操作人
     * @return 操作人集合
     */
    public List<SlRworkRmember> selectSlRworkRmemberList(SlRworkRmember slRworkRmember);

    /**
     * 查询未提交报工项的操作人
     *
     * @param rwork
     * @return 操作人
     */
    public List<SlRworkRmember> selectNotSlRworkRmemberList(SlRwork rwork);

    /**
     * 根据报工单ID和人员查询总时长
     *
     * @param rfworkId
     * @param  userName
     * @return 结果
     */
    public BigDecimal selectTotalDurationByRfworkIdAndUser(Long rfworkId,String userName);

    /**
     * 根据人和日期查询指定出勤班组次数
     *
     * @return 结果
     */
    public int selectBzCountByUserAndDate(Map map);

    /**
     * 新增操作人
     * 
     * @param slRworkRmember 操作人
     * @return 结果
     */
    public int insertSlRworkRmember(SlRworkRmember slRworkRmember);

    /**
     * 修改操作人
     * 
     * @param slRworkRmember 操作人
     * @return 结果
     */
    public int updateSlRworkRmember(SlRworkRmember slRworkRmember);

    /**
     * 批量删除操作人
     * 
     * @param rmemberIds 需要删除的操作人主键集合
     * @return 结果
     */
    public int deleteSlRworkRmemberByRmemberIds(Long[] rmemberIds);

    /**
     * 删除操作人信息
     * 
     * @param rmemberId 操作人主键
     * @return 结果
     */
    public int deleteSlRworkRmemberByRmemberId(Long rmemberId);

    /**
     * 根据报工单ID删除操作人信息
     *
     * @param rworkId 报工单ID
     * @return 结果
     */
    public int deleteSlRworkRmemberByRworkId(Long rworkId);

}
